package com.bzkj.basicinfo.mapper;

import com.bzkj.basicinfo.domain.ncc.NccBasicSupplier;
import com.bzkj.basicinfo.domain.ncc.dto.NccBasicSupplierDto;
import com.bzkj.basicinfo.domain.ncc.erp.SupplierBean;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Set;

public interface NccBasicSupplierMapper
{

    /**
     * 根据code查询ncc供应商信息
     *
     * @param code
     * @return
     */
    NccBasicSupplier queryNccBasicSupplier(String code);

    /**
     * NCC供应商信息-如果能根据code查询到，修改数据
     *
     * @param supplier
     */
    void updateNccBasicSupplier(NccBasicSupplier supplier);

    /**
     * NCC供应商信息-如果不能根据code查询到，新增数据
     *
     * @param supplier
     */
    void insertNccBasicSupplier(NccBasicSupplier supplier);

    /**
     * 修改供应商状态
     *
     * @Author wangzhichao
     * @Date 2024/12/05 15:43:15
     * @Param status 状态
     * @Param pkSupplier 主键
     */
    int nccBasicSupplierEnableStatusUpdate(@Param("status") String status, @Param("pkSupplier") String pkSupplier, @Param("modifier") String modifier);

    /**
     * 修改供应商数据
     *
     * @Author wangzhichao
     * @Date 2024/12/05 16:04:41
     * @Param entity
     */
    int nccBasicSupplierUpdate(NccBasicSupplier entity);

    /**
     * 根据条件获取总条数
     *
     * @Author wangzhichao
     * @Date 2024/12/05 16:58:33
     * @Param dto 条件
     */
    int getTotal(NccBasicSupplierDto dto);

    /**
     * 根据条件获取分页信息
     *
     * @Author wangzhichao
     * @Date 2024/12/05 16:58:44
     * @Param dto 条件
     * @Param page 分页条件
     */
    List<NccBasicSupplier> nccBasicSupplierFindData(@Param("dto") NccBasicSupplierDto dto);

    List<String> findBaiscSuppleierName(String name);

    Set<String> findNccBasicpkMeasdocSetList(@Param("pkMeasdoc") List<String> pkMeasdoc);

    /**
     * 插入或者新增
     * @param supplierBean 基础数据
     */
    void insertOrUpdate(@Param("item") SupplierBean supplierBean);
}
